package com.kwok.boot.rabbitmq.publishsubscribe.producer.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Slf4j
public class ProducerController {

    @Autowired
    private RabbitTemplate rabbitTemplate;

    @GetMapping("/send")
    public String sendMessageToQueue(String message){
        log.debug("生产者发送到队列中的消息数据是：{}" + message);
        /**
         * 参数说明：
         * exchange:生产者发送消息给指定的交换机
         * routingKey:指定消息发送到哪个队列，和配置类中队列的名称绑定
         * 参数3：要发送的消息数据
         */
        //生产者把消息发送给交换机，交换机将消息广播给订阅的队列
        rabbitTemplate.convertAndSend("Publish-Subscribe-Fanout-Exchange", "", message);
        return "消息发送成功";
    }

}
